home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / oper_sys / choices / chcssml1.lha / Name.c < prev    next >
C/C++ Source or Header  |  1989-02-06  |  2KB  |  72 lines

  1. /*
  2.  * This file is part of the Choices Operating System Simulator
  3.  * Developed by: The TAPESTRY Parallel Computing Laboratory
  4.  *         University of Illinois at Urbana-Champaign
  5.  *         Department of Computer Science
  6.  *         1304 W. Springfield Ave.
  7.  *         Urbana, IL    61801
  8.  *
  9.  * Copyright (c) 1987, 1988, 1989 The University of Illinois Board of Trustees.
  10.  *    All Rights Reserved.
  11.  * CONFIDENTIAL INFORMATION. Distribution restricted under license agreement.
  12.  *
  13.  * Author: Gary M. Johnston (johnston@cs.uiuc.edu)
  14.  * Project Manager and Principal Investigator: Roy Campbell (roy@cs.uiuc.edu)
  15.  *
  16.  * Funded by: NSF TAPESTRY Grant No. 1-5-30035, NASA ICLASS Grant 
  17.  *   No. 1-5-25469 and No. NSG1471 and AT&T Metronet Grant No. 1-5-37411.
  18.  */
  19. /*
  20.  * Name.c - Common instance name creation routines.
  21.  *
  22.  *    $Header: Name.c,v 1.1 88/02/12 18:19:39 johnston Exp $
  23.  *    $Locker: johnston $
  24.  */
  25.  
  26. #include <stdio.h>
  27. #include <string.h>
  28. #include "Assert.h"
  29. #include "Name.h"
  30.  
  31. char *
  32. MakeName(char * prefix, void * address)
  33. {
  34.     /*
  35.      * Create and return string "<prefix>[<hexaddress>]".
  36.      */
  37.     Assert(prefix != 0);
  38.     Assert(address != 0);
  39.  
  40.     char * buffer = "0x00000000";
  41.     sprintf( buffer, "0x%08x", address );
  42.     char * left = "[";
  43.     char * right = "]";
  44.     char * name = new char [ strlen( prefix ) +
  45.                  strlen( left ) +
  46.                  strlen( buffer ) +
  47.                  strlen( right ) +
  48.                  1 ];
  49.     Assert(name != 0);
  50.     strcpy( name, prefix );
  51.     strcat( name, left );
  52.     strcat( name, buffer );
  53.     strcat( name, right );
  54.     return( name );
  55. }
  56.  
  57. char *
  58. CatName( char * one, char * two )
  59. {
  60.     /*
  61.      * Concatenate two names.
  62.      */
  63.     Assert(one != 0);
  64.     Assert(two != 0);
  65.  
  66.     char * name = new char [ strlen(one) + strlen(two) + 1 ];
  67.     Assert(name != 0);
  68.     strcpy( name, one );
  69.     strcat( name, two );
  70.     return (name);
  71. }
  72.